首页
下载应用
提交文章
关于我们
🔥 热搜 🔥
1
上海
2
习近平
3
新疆
4
鄂州父女瓜
5
乌鲁木齐
6
疫情
7
H工口小学生赛高
8
习明泽
9
芊川一笑图包
10
印尼排华
分类
社会
娱乐
国际
人权
科技
经济
其它
首页
下载应用
提交文章
关于我们
🔥
热搜
🔥
1
百度
2
今日热点
3
微信公众平台
4
贴吧
5
opgg
6
dnf私服
7
百度贴吧
8
知乎
9
dnf公益服
10
百度傻逼
分类
社会
娱乐
国际
人权
科技
经济
其它
泪目!8死17伤!江苏一职校持刀伤人案,背后隐情令人心惊!
突发!宜兴一学校发生持刀伤人案件!致8死17伤!太恶劣了!
一小学门口突发!多名学生被撞伤!
“占坑式辩护”,侵犯了谁?
突发!一小学门口发生撞人事件
生成图片,分享到微信朋友圈
2023年1月30日
2023年2月21日
2023年2月22日
2023年2月22日
2023年2月23日
2023年2月23日
2023年2月24日
2023年2月24日
2023年2月25日
2023年2月25日
2023年2月26日
2023年2月26日
2023年2月27日
2023年2月27日
2023年2月28日
查看原文
其他
【连载】比特币史话 | 拜占庭将军(1)
Original
刘教链
刘教链
2023-01-30
收录于合集 #史话
102个
(圣索菲亚大教堂,伊斯坦布尔。图片来源于网络)
本篇看点:
拜占庭将军们的故事是怎样的由来?
中本聪一路闯关,开始从密码学跨界进入分布式计算领域,他将面临的又是怎样一副局面呢?
前情回顾:
【连载】比特币史话 | 时间之矢(3)
【连载】比特币史话 | 时间之矢(4)
【连载】比特币史话 | 时间之矢(5)
正文:
在今天的土耳其境内,有一个连接黑海和地中海、横跨亚洲和欧洲因而位居战略要冲的著名城市,伊斯坦布尔(Istanbul)。在罗马帝国时期,她的名字叫做君士坦丁堡(Constantinople),并曾经一度作为东罗马帝国的首都。而在公元前658年始建之际,她的名字叫做拜占庭(Byzantine)。
[公众号:刘教链]
在一次围城之战中,拜占庭帝国的将军们兵分几路,分别从不同方向向敌军进攻。将军们之间只能依靠信使传递消息,而信使则有被敌军截获、丢失消息,甚至策反、传递假消息的可能性。更糟糕的是,将军之中据信也有被敌军策反者,不仅可能拒绝呼应其他将军的行动,甚至有可能故意发出假情报,欺骗、干扰其他将军,阻止他们就作战行动达成一致。试问,在这种情况下,这些拜占庭的将军们有什么方法可以就作战计划达成一致呢?[1]
[公众号:刘教链]
这就是计算机分布式系统领域中著名的“拜占庭将军问题”(Byzantine Generals Problem)。这是一个故事,也是一个比喻。讲这个故事的人正是美国计算机科学家莱斯利·兰伯特(Leslie Lamport)。事实上,莱斯利·兰伯特是先论证的解决方案,然后才提出了这个问题。
[公众号:刘教链]
最早意识到拜占庭共识问题的人,其实是美国计算机科学家罗伯特·肖斯塔克(Robert Shostak)。他是在1978年为美国航空航天局(NASA)资助的SIFT项目工作是发现这个问题的,并将其称为交互式一致性问题。后来,1980年4月,他和莱斯利·兰伯特一起发表了对于这个问题的研究论文,指出有算法可以在不超过1/3坏节点的情况下达成共识。但是,解法有了,问题却由于过于复杂而难以被理解。于是莱斯利·兰伯特决定讲一个好故事,以便帮助大家理解这个问题。他最初选择的故事背景发生在另一个城市,后来经别人建议才改到了拜占庭,这才有了1982年的论文《拜占庭将军问题》(The Byzantine Generals Problem)[2]。莱斯利·兰伯特在论文中所给出的解决方案,就是所谓“拜占庭容错”(BFT, Byzantine Fault Tolerant)算法。后人在其基础上,又陆续提出了很多的变种算法,比如1999年由米格尔·卡斯特罗(Miguel Castro)和巴巴拉·里斯科夫(Barbara Liskov)提出的“实用拜占庭容错算法”(PBFT)等。
[公众号:刘教链]
莱斯利·兰伯特的故事深入人心。在他讲的故事里,将军就是网络节点,信使就是互联网通信,作战行动就是信息,达成共识就是每个节点都建立相同的全局观(又称全局视图,global view);忠诚的将军就是正常工作的节点,失联的将军就是不工作的、联系不上的节点,被策反的叛徒将军就是主动作恶、作弊的节点。只能容许忠诚将军存在的网络是难以规模化的。随着互联网的发展,节点数量的增加,必然出现节点故障、将军失联的情况。我们都听说过谷歌早年用普通PC机搭建集群,通过软件实现高可用性的故事。谷歌所实现的,就是所谓“崩溃容错”(CFT, Crash Fault Tolerant)算法。如果更进一步,允许网络中出现非受控的作恶节点、叛徒将军,那么网络环境就会进一步恶化为所谓“拜占庭网络”,此时就需要所谓“拜占庭容错”(BFT)算法才能保证系统的稳定、安全运行。
[公众号:刘教链]
在2008年中本聪为了发明比特币而提出工作量证明链之前,没有人知道怎么在全球互联网规模(1万至10万数据节点)上实现有效的拜占庭容错。整个互联网行业选择了另外一条技术路线,抛弃互联网创立之初的去中心化理念和构想,走向中心化控制,通过中心化控制权去识别、阻止和驱逐叛徒将军,让所有数据节点工作在一个中心化管控的、安全的环境中,从而把问题降级为更为简单的“崩溃容错”问题。但是即便如此,1985年的一篇著名论文仍然给了计算机科学家和工程师们一记重击...
[公众号:刘教链]
【未完待续】(公众号:刘教链)
您可能也对以下帖子感兴趣
{{{title}}}
文章有问题?点此查看未经处理的缓存